/*
	File:		Enemy.h
	Author:		Ben Feldmann
	Purpose:	Base class for game enemies
*/


#pragma once


#include "Entity.h"
#include "IListener.h"

class Event;


class Enemy : public Entity, public IListener
{
private:
	float health;
	float moveSpeed;
	int scrapMetal;
	int circuitry;
	unsigned char difficulty;
	

public:
	Enemy();

	virtual ~Enemy();

	virtual void Update();

	//virtual void Render();

	//virtual RECT GetRect();

	//virtual bool CheckCollision(IEntity* base);

	virtual void Attack();

	// Pure virtual method from IListener
	virtual void HandleEvent(Event* thisEvent);

	// Accessors
	float			GetHealth() const		{return health;}
	float			GetSpeed() const		{return moveSpeed;}
	int				GetMetal() const		{return scrapMetal;}
	int				GetCircuitry() const	{return circuitry;}
	unsigned char	GetDifficulty() const	{return difficulty;}

	// Mutators
	void SetHealth(float h)					{health = h;}
	void SetSpeed(float s) 					{moveSpeed = s;}
	void SetMetal(int m) 					{scrapMetal = m;}
	void SetCircuitry(int c)				{circuitry = c;}
	void SetDifficulty(unsigned char d)		{difficulty = d;}
	
};
